home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / util / RegularEnumSet.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.8 KB  |  167 lines

  1. package java.util;
  2.  
  3. class RegularEnumSet<E extends Enum<E>> extends EnumSet<E> {
  4.    private long elements = 0L;
  5.  
  6.    RegularEnumSet(Class<E> var1, Enum[] var2) {
  7.       super(var1, var2);
  8.    }
  9.  
  10.    void addRange(E var1, E var2) {
  11.       this.elements = -1L >>> var1.ordinal() - var2.ordinal() - 1 << var1.ordinal();
  12.    }
  13.  
  14.    void addAll() {
  15.       if (this.universe.length != 0) {
  16.          this.elements = -1L >>> -this.universe.length;
  17.       }
  18.  
  19.    }
  20.  
  21.    void complement() {
  22.       if (this.universe.length != 0) {
  23.          this.elements = ~this.elements;
  24.          this.elements &= -1L >>> -this.universe.length;
  25.       }
  26.  
  27.    }
  28.  
  29.    public Iterator<E> iterator() {
  30.       return new EnumSetIterator(this);
  31.    }
  32.  
  33.    public int size() {
  34.       return Long.bitCount(this.elements);
  35.    }
  36.  
  37.    public boolean isEmpty() {
  38.       return this.elements == 0L;
  39.    }
  40.  
  41.    public boolean contains(Object var1) {
  42.       if (var1 == null) {
  43.          return false;
  44.       } else {
  45.          Class var2 = var1.getClass();
  46.          if (var2 != this.elementType && var2.getSuperclass() != this.elementType) {
  47.             return false;
  48.          } else {
  49.             return (this.elements & 1L << ((Enum)var1).ordinal()) != 0L;
  50.          }
  51.       }
  52.    }
  53.  
  54.    public boolean add(E var1) {
  55.       this.typeCheck(var1);
  56.       long var2 = this.elements;
  57.       this.elements |= 1L << var1.ordinal();
  58.       return this.elements != var2;
  59.    }
  60.  
  61.    public boolean remove(Object var1) {
  62.       if (var1 == null) {
  63.          return false;
  64.       } else {
  65.          Class var2 = var1.getClass();
  66.          if (var2 != this.elementType && var2.getSuperclass() != this.elementType) {
  67.             return false;
  68.          } else {
  69.             long var3 = this.elements;
  70.             this.elements &= ~(1L << ((Enum)var1).ordinal());
  71.             return this.elements != var3;
  72.          }
  73.       }
  74.    }
  75.  
  76.    public boolean containsAll(Collection<?> var1) {
  77.       if (!(var1 instanceof RegularEnumSet)) {
  78.          return super.containsAll(var1);
  79.       } else {
  80.          RegularEnumSet var2 = (RegularEnumSet)var1;
  81.          if (var2.elementType != this.elementType) {
  82.             return var2.isEmpty();
  83.          } else {
  84.             return (var2.elements & ~this.elements) == 0L;
  85.          }
  86.       }
  87.    }
  88.  
  89.    public boolean addAll(Collection<? extends E> var1) {
  90.       if (!(var1 instanceof RegularEnumSet)) {
  91.          return super.addAll(var1);
  92.       } else {
  93.          RegularEnumSet var2 = (RegularEnumSet)var1;
  94.          if (var2.elementType != this.elementType) {
  95.             if (var2.isEmpty()) {
  96.                return false;
  97.             } else {
  98.                throw new ClassCastException(var2.elementType + " != " + this.elementType);
  99.             }
  100.          } else {
  101.             long var3 = this.elements;
  102.             this.elements |= var2.elements;
  103.             return this.elements != var3;
  104.          }
  105.       }
  106.    }
  107.  
  108.    public boolean removeAll(Collection<?> var1) {
  109.       if (!(var1 instanceof RegularEnumSet)) {
  110.          return super.removeAll(var1);
  111.       } else {
  112.          RegularEnumSet var2 = (RegularEnumSet)var1;
  113.          if (var2.elementType != this.elementType) {
  114.             return false;
  115.          } else {
  116.             long var3 = this.elements;
  117.             this.elements &= ~var2.elements;
  118.             return this.elements != var3;
  119.          }
  120.       }
  121.    }
  122.  
  123.    public boolean retainAll(Collection<?> var1) {
  124.       if (!(var1 instanceof RegularEnumSet)) {
  125.          return super.retainAll(var1);
  126.       } else {
  127.          RegularEnumSet var2 = (RegularEnumSet)var1;
  128.          if (var2.elementType != this.elementType) {
  129.             boolean var5 = this.elements != 0L;
  130.             this.elements = 0L;
  131.             return var5;
  132.          } else {
  133.             long var3 = this.elements;
  134.             this.elements &= var2.elements;
  135.             return this.elements != var3;
  136.          }
  137.       }
  138.    }
  139.  
  140.    public void clear() {
  141.       this.elements = 0L;
  142.    }
  143.  
  144.    public boolean equals(Object var1) {
  145.       if (!(var1 instanceof RegularEnumSet)) {
  146.          return super.equals(var1);
  147.       } else {
  148.          RegularEnumSet var2 = (RegularEnumSet)var1;
  149.          if (var2.elementType == this.elementType) {
  150.             return var2.elements == this.elements;
  151.          } else {
  152.             return this.elements == 0L && var2.elements == 0L;
  153.          }
  154.       }
  155.    }
  156.  
  157.    // $FF: synthetic method
  158.    static long access$000(RegularEnumSet var0) {
  159.       return var0.elements;
  160.    }
  161.  
  162.    // $FF: synthetic method
  163.    static long access$022(RegularEnumSet var0, long var1) {
  164.       return var0.elements -= var1;
  165.    }
  166. }
  167.